Skip to content

Release/v0.2.0 ready#3

Merged
nadav-node9 merged 10 commits intomainfrom
release/v0.2.0-ready
Mar 10, 2026
Merged

Release/v0.2.0 ready#3
nadav-node9 merged 10 commits intomainfrom
release/v0.2.0-ready

Conversation

@nadav-node9
Copy link
Contributor

Summary

What does this PR do? Reference any related issues (e.g. Closes #123).

Type of change

  • Bug fix
  • New feature
  • Refactor / code cleanup
  • Documentation
  • Tests

Checklist

  • npm test passes
  • npm run typecheck passes
  • npm run lint passes
  • Tests added/updated for new behavior
  • CHANGELOG.md updated (for user-facing changes)

nadavis and others added 8 commits March 8, 2026 15:47
…er than just monitoring the Server's (responses). Dangerous actions are now caught _before_ they reach the target server.
…nit crash

- Race condition: autoStartDaemonAndWait now verifies HTTP readiness via
  GET /settings before returning true, preventing stale-PID false positives
- Race condition: openBrowserLocal() called immediately after daemon is
  HTTP-ready so browser starts loading before POST /check fires, ensuring
  the SSE 'add' event is delivered to an already-connected client
- Race condition: daemon skips openBrowser() when autoStarted=true to
  avoid duplicate tabs (CLI already opened the browser)
- Race condition: 'Abandoned' browser racer result now resolves the race
  as denied instead of being silently swallowed (caused CLI to hang)
- Race condition: SSE reconnect abandon timer raised 2s→10s so a page
  reload doesn't abandon pending requests before the browser reconnects
- Bug fix: cloudBadge null check in SSE 'init' handler — missing DOM
  element crashed the handler before addCard() ran, causing approval
  requests to never appear when browser was cold-started
- Undo engine: moved snapshot trigger from PostToolUse (log) to
  PreToolUse (check) so snapshot captures state before AI change, not
  after (previous timing made undo a no-op)
- Undo engine: applyUndo now deletes files created after the snapshot
  that git restore alone does not remove
- Undo engine: expanded STATE_CHANGING_TOOLS list to include
  str_replace_based_edit_tool and create_file

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously only tracked files (git ls-files) were checked for deletion,
so files created after the snapshot but never committed (e.g. test.txt)
survived the undo. Now also queries git ls-files --others --exclude-standard
to catch untracked non-ignored files — the same set git add -A captures
when building the snapshot tree.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a local channel (native popup, browser dashboard, terminal) wins
the approval race while cloud is also enforced, the pending SaaS request
was never resolved — leaving Mission Control stuck on PENDING forever.

Now finish() calls resolveNode9SaaS() (PATCH /intercept/requests/:id)
whenever checkedBy !== 'cloud' and a cloudRequestId exists, closing the
request immediately with the correct APPROVED/DENIED status.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
core.ts:
- Fire-and-forget POST /intercept/audit for all local fast-path allows
  (ignoredTools, sandboxPaths, local-policy, trust) — gives org admins
  full visibility of calls that never reached the cloud
- Fixed config merge: sandboxPaths and ignoredTools now concatenate across
  layers (global → project → local); dangerousWords replaces (higher wins)
- agentVersion context now sent as context.agent so backend can store AI
  client type (Claude Code, Gemini CLI, Terminal) separately from machine identity

cli.ts:
- Updated context payload to include agent type metadata for accurate
  per-client breakdown in Mission Control Agents tab

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nadav-node9 nadav-node9 enabled auto-merge (squash) March 10, 2026 11:25
@nadav-node9 nadav-node9 merged commit 4fe3c45 into main Mar 10, 2026
3 checks passed
@nadav-node9 nadav-node9 deleted the release/v0.2.0-ready branch March 10, 2026 11:44
@nadav-node9
Copy link
Contributor Author

🎉 This PR is included in version 1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants